-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate E/App to use PlatformStackNavigation
#49937
base: main
Are you sure you want to change the base?
Migrate E/App to use PlatformStackNavigation
#49937
Conversation
@srikarparsi Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
PlatformStackNavigation
in E/App (introduce native-stack
navigation on native)PlatformStackNavigation
in E/App (introduce native-stack
navigation on mobile)
PlatformStackNavigation
in E/App (introduce native-stack
navigation on mobile)PlatformStackNavigation
PlatformStackNavigation
PlatformStackNavigation
3b921d3
to
5701c46
Compare
Re-assigning to @chiragsalian and @mountiny for review since it looks like they have more context. |
@mountiny or @chiragsalian please from now on create ad-hoc builds from here. I fixed all remaining reported errors yesterday, so we can probably trigger a new build already. |
This comment has been minimized.
This comment has been minimized.
The ad-hoc iOS build fail is also going to be related to the patch from #49936 |
@mountiny Please run adhoc builds here when you have a moment, i plan to work on testing this fully today |
Running |
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪
|
The PR didn't have the changes to the |
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪 |
@chrispader Looking great! I think there are two things I have noticed:
|
package-lock.json
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
commenting so this shows on my k2 for easy access
@mountiny Both bugs are fixed! I couldn't really see a difference between Stack navigator and Native-Stack while testing in this PR: (you meant when clicking on an item in the Sidebar right?) StackSimulator.Screen.Recording.-.iPhone.15.Pro.-.2024-10-06.at.17.38.30.mp4Native StackSimulator.Screen.Recording.-.iPhone.15.Pro.-.2024-10-06.at.20.09.51.mp4 |
I will be OOO the next week, but i will hand this over to one of our other Margelo engineers. If there are any urgent issues i can also help with that, but i'm not gonna be on my Macbook unfortunately |
I am now available for around ~2 hours i'll pull and start testing this locally |
I don't think i can reproduce this. @trjExpensify what do you mean by jittery? If you mean the "flashing" of the Expensify logo and text, this is just caused because we effectively render a new screen and the header component is not shared between screens. Since we load the other Bottom Tabs Screens lazily, this might take a few ms on the initial render. What i notice though, is that navigating to the bottom tab "Search" takes a bit longer than the other tabs. Though, this might just be due to more content to be (initially) rendered. ScreenRecording_11-11-2024.14-29-38_1.MP4 |
I also cannot reproduce the slowness of the Status page. The empty field is focused once the screen finished animating in.
|
The flashes of the header can be improved by loading the bottom tab screens (in this case Right now i cannot really see any big flashes though:
|
Fixed. The |
Yeah, on Friday it seemed like the Expensify logo and text was shaking more than just flashing. Retesting today on the same build and it seems a lot better. Even the flashing seems to have gone? 🤔 |
Did you test it from a bar by any chance @trjExpensify? |
rofl. Surprisingly, no. |
Fixed.
Fixed in 8e78f30. @mountiny this change introduces some new workspace switching/navigation logic, so please give this change a quick review :) |
I can confirm this has been fixed by the The modal will not animate out while the screen unmounts, but it still looks acceptable imo:
|
As of right now, this is the last (major) issue with this PR.
@WoLewicki do you maybe have some spare cycles to take a look at this issue in |
Heads up! I'll be out till friday, will be back on Saturday and will review and test whatever we have over the weekend. Sorry if it cause any delay on my part 🙇 |
@chrispader yeah that animation looks good to me |
What are the remaining known issues @ishpaul777 @chrispader ? |
## Description Based on Expensify/App#49937 (comment) and the comments above, PR fixes the unnecessary checks for creating snapshot on the view on dismiss. It was refactored already in #2134 and #2261 (👏 to @kkafar). Those checks do nothing now since each screen is responsible for making its own snapshot. Having those checks can only lead to problems.
🚧 @mountiny has triggered a test build. You can view the workflow run here. |
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪 |
@mountiny @ishpaul777 @chiragsalian
Details
This PR migrates the App to use
PlatformStackNavigation
types and navigator components implemented in #37891Fixed Issues
$ #37891
PROPOSAL: #37891 (comment)
Tests
Open app
press on search filed
be sure that:
close screen
open any chat
tap on composer
go to previous screen
be sure there is no keyboard jumps on previous screen -> [HOLD for payment 2024-10-17] [HOLD for payment 2024-06-06] [HOLD #37891] Keyboard jumps around when swiping back from chat to LHN with gesture #37923
open chat again
tap on task
tap on Assignee
be sure there is no infinite loading for the screen -> [HOLD for payment 2024-03-07] Android - Task-Tapping assignee shows infinite loading page #37252
go back to task
tap on Title
be sure keyboard is opened automatically -> [HOLD for payment 2024-03-07] [$500] Android - Task - Keyboard does not open after selecting task title #37273
go back to main page
tap on user avatar (to open Account settings)
tap on wallet, tap on "Add bank account"
tap on "Debit card"
be sure keyboard gets opened automatically -> [HOLD for payment 2024-03-07] [$500] Android - Wallet - The keyboard does not open automatically when the debit card is opened #37325
go back to main page
press "+" in TabBar
tap Request Money
enter any amount
press "Next"
be sure that on participant screen keyboard appears from the bottom -> [HOLD for payment 2024-03-07] [$500] IOU - Keyboard comes out from right to left on participant screen #37257
Verify that no errors appear in the JS console
Offline tests
Same as tests
QA Steps
Same as tests
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)Design
label and/or tagged@Expensify/design
so the design team can review the changes.ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop